package mashibing.class2;


import org.junit.Test;

import java.util.Arrays;

/**
 * 如何不用额外变量交换两个数
 *
 * @author yujiafan
 * @version 1.0.0
 * @create 2023-03-07
 */
public class Class2_1_Swap {

    /**
     * 值交换（异或）
     * 注意：位置不能指向同一块内存空间
     * 1、自己^或自己=0
     * 2、自己^0=自己
     * 3、异或符合交换律
     */
    @Test
    public void xorSwap() {
        int[] arr = {3, 5, 100};
        System.out.println(Arrays.toString(arr));
        arr[0] = arr[0] ^ arr[1];
        arr[1] = arr[0] ^ arr[1];
        arr[0] = arr[0] ^ arr[1];
        System.out.println(Arrays.toString(arr));
    }
}
